#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    // 若要让类能够使用信号槽
    // 必须在类开始的时候使用Q_OBJECT宏
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    // 槽函数传参可以起到复用代码的功能，有多个逻辑
    // 代码上整体一致，但是涉及的数据不同
    // 可以通过函数，参数来复用代码，在不同的场景中传入不同的参数
    void handleMySignals(const QString&);
signals:
    // 信号也可以带有参数
    // 参数和槽的参数必须一致
    // 一致主要要求类型，个数如果不一致也可以
    // 数量不一致的时候，一般要求信号的参数多于槽的参数
    // 因为要确保槽函数的每个参数都有值
    // 槽函数的参数小于信号的参数，可以使得槽函数可以用于更多的槽中
    void mySignals(const QString&, const QString&);

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
